<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    const arr = [21, 5, 10, 3, 89, 23, 4, 7, 8, 9, 6, 1]


    // 实现一个算法，能够查找到特定的数字
    // 线性搜索
    function findNum(num) {
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] === num) {
          console.log('找到该数字了')
          return;
        }
      }
    }

    // 优化的办法，二分查找法
    // 数据必须是排序好的

    //  11   3
    // 12 4
    arr.sort((r1, r2) => r1 - r2)
    let n = 0;
    function findNum2(arr, num) {
      n += 1;
      let len = arr.length;
      let index = Math.floor((len - 1) / 2);
      if (arr[index] > num) {

        findNum2(arr.slice(0, index), num)
      } if (arr[index] < num) {
        if (index + 1 >= len) {
          console.log('没有找到')
          return;
        }
        findNum2(arr.slice(index + 1), num)
      } else if (arr[index] === num) {
        console.log('找到了')
        return;
      } else {
        return;
      }

    }

  </script>
</body>

</html>